#ifndef __USART_H
#define __USART_H
#include "stdio.h"
#include "MCU_conf.h"
#include "sys.h"

#define USART_REC_LEN 200 // 定义最大接收字节数 200
#define EN_USART1_RX 1    // 使能（1）/禁止（0）串口1接收
#define EN_USART2_RX 1    // 使能（1）/禁止（0）串口1接收
#define EN_USART3_RX 1    // 使能（1）/禁止（0）串口1接收
#define EN_USART4_RX 1    // 使能（1）/禁止（0）串口1接收
#define EN_USART6_RX 1    // 使能（1）/禁止（0）串口1接收
// UART-1
void uart1_init(uint32_t USART_BaudRate, uint16_t USART_WordLength, uint16_t USART_StopBits, uint16_t USART_Parity);
void uart1_Tx(u8 *Tx, u8 length);
u8 uart1_Rx(u8 *Rx, u8 *length);
// UART-2
void uart2_init(uint32_t USART_BaudRate, uint16_t USART_WordLength, uint16_t USART_StopBits, uint16_t USART_Parity);
void uart2_Tx(u8 *Tx, u8 length);
u8 uart2_Rx(u8 *Rx, u8 *length);
// UART-3
void uart3_init(uint32_t USART_BaudRate, uint16_t USART_WordLength, uint16_t USART_StopBits, uint16_t USART_Parity);
void uart3_Tx(u8 *Tx, u8 length);
u8 uart3_Rx(u8 *Rx, u8 *length);
// UART-4
void uart4_init(uint32_t USART_BaudRate, uint16_t USART_WordLength, uint16_t USART_StopBits, uint16_t USART_Parity);
void uart4_Tx(u8 *Tx, u8 length);
u8 uart4_Rx(u8 *Rx, u8 *length);
// UART-6
void uart6_init(uint32_t USART_BaudRate, uint16_t USART_WordLength, uint16_t USART_StopBits, uint16_t USART_Parity);
void uart6_Tx(u8 *Tx, u8 length);
u8 uart6_Rx(u8 *Rx, u8 *length);
extern u8 USART1_RX_BUF[USART_REC_LEN];
#endif
